package com.molichuxing.gateway.bff.payment.services;

import java.util.List;

import com.molichuxing.framework.exception.BizException;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.gateway.bff.payment.entity.request.create.OrderPayCreateVo;
import com.molichuxing.gateway.bff.payment.entity.response.CashierDeskVo;
import com.molichuxing.gateway.bff.payment.entity.response.PaymentRecordVo;
import com.molichuxing.services.property.PaymentCostTypeEnum;

/**
 * 支付相关bff
 * 
 * @author zoumingyu
 * @date 2019年9月20日
 *
 */
public interface PaymentBffService extends RootService {

	/**
	 * 收银台
	 * 
	 * @param orderCode
	 *            订单号
	 * @param payType
	 *            支付类型
	 * @param scheduleId
	 *            排期id
	 * @param userId
	 *            用户id
	 * @return
	 */
	public CashierDeskVo getCashierDesk(Long orderCode, PaymentCostTypeEnum payType, Integer scheduleId,
			Integer userId);

	/**
	 * 支付-生成预支付单
	 * 
	 * @param createVo
	 * @return
	 * @throws Exception
	 * @throws BizException
	 */
	public String getOrderPay(OrderPayCreateVo createVo) throws BizException, Exception;
	
	/**
	 * 用户支付记录
	 * 
	 * @param userId
	 *            用户id
	 * @return
	 */
	public List<PaymentRecordVo> getPaymentRecord(Integer userId);
}
